home *** CD-ROM | disk | FTP | other *** search
/ Revolution - Das Atari CD Magazin 1997 / Revolution - Das Atari CD Magazin 1.iso / software / anwendng / utility / iprn2d / readme.txt < prev    next >
Text File  |  1996-05-11  |  11KB  |  247 lines

  1. iPRN II (C) Peter Missel 1994-1996
  2.  
  3. "Yet another printout accelerator..."
  4.  
  5. Yes. Another one. But this one features printer state tracking.
  6. And it is really fast. Almost 40 times the printing speed TOS yields
  7. can be achieved.
  8.  
  9. "What does that mean, printer state tracking?"
  10.  
  11. Well, in addition to what you expect from a printout accelerator,
  12. accelerating printout, iPRN II knows whether the printer is just busy printing
  13. or is in an error condition (offline, power off, no paper, not connected...).
  14. Thus the system always knows in advance whether or not the printer is 
  15. ready to receive data.
  16. In a nutshell, the annoying 40 second delay after giving a "Print" command
  17. without having the printer ready is GONE. The error message appears instantly.
  18.  
  19.  
  20. iPRN II is shareware. Demo versions (program file IPRN2D.PRG, version numbers
  21. 2-xx instead of 2.xx) may freely be distributed, but only in the complete
  22. and unchanged IPRN2xxD.LZH package. 
  23.  
  24.  
  25. Restrictions in the demo versions:
  26. - Only the first printout is fully (i.e. GEMDOS-) accelerated
  27. - The state tracking only works once per session.
  28.   After the printer has once been offline and gone back online, the
  29.   state tracking deactivates. The system continues normally, only the
  30.   "printer memorial delay" is back.
  31. - No control panel module:
  32.   - no timeout configuration
  33.   - no state tracking enable/disable (it disables by itself anyway)
  34.   - no deskjet activation
  35.  
  36. Registered versions 2.00 and up cost DM 25,- in Germany and $20 elsewhere.
  37.  
  38.  
  39. Registration
  40. ============
  41. Europe: Send DM 25 / US$20 to this bank account:
  42.  
  43. Peter Missel, Stadtsparkasse Augsburg, BLZ 72050000, Kto. 1301522.
  44. In the "usage" field, write "iPRN Firstname Lastname"
  45.  
  46. UK: Make a Cheque or Postal Order for 13 Pounds Sterling, payable to 
  47. Denesh Bhabuta, and send to
  48.  
  49. CyberSTrider,
  50. 203 Parr Lane,
  51. Unsworth,
  52. Bury,
  53. Lancashire,
  54. BL9 8JW
  55.  
  56. Please do not forget to include your name and address.
  57.  
  58. Denesh may be contacted via E-mail, on:
  59. dbhabuta@cix.compulink.co.uk
  60. danny@micros.hensa.ac.uk
  61.  
  62. For proper identification of your payment, send a postcard to:
  63. Peter Missel
  64. Greiffstraße 11
  65. 86157 Augsburg
  66. Germany.
  67.  
  68. Or send eMail to Peter_Missel@a.maus.de.
  69.  
  70.  
  71. Benchmarks (in characters per second)
  72. =====================================
  73.  
  74.                                 BIOS                 GEMDOS
  75. System                          without/with iPRN    without/with iPRN II
  76. -------------------------------------------------------------------------
  77. ST, 8 MHz, TOS 2.06               1800  13500          1650  64500
  78. ST, 16 MHz, TOS 1.04              3200  >17200
  79. Falcon030, TOS 4.04               3500  up to 36100 *  2930  >115000
  80. Falcon030, TOS 4.04, display off  4500  up to 39370 *        >115000
  81. Falcon030/32 MHz, display off     4800  up to 39370 *        >115000
  82. TT030 w/o FastRAM, TOS 3.06       5600  up to 34100 *
  83. TT030 w/ FastRAM, TOS 3.06          ?   up to 41000 *         >72000
  84.  
  85. ("greater than" values are benchmarked ones where the system could have
  86. gone faster, but the printer wasn't fast enough.)
  87.  
  88. * On 68030-based machines, speed depends on the position of
  89.   driver and software in the CPU's cache; in a worst-case scenario,
  90.   speed will be 20% less than the given maximum, normal average
  91.   will be about 5% less.
  92.   iPRN II's GEMDOS printing code fits completely into the 68030
  93.   instruction cache, so that the above speeds can be achieved in almost
  94.   any situation.
  95.  
  96.  
  97. Installation
  98. ============
  99. IPRN2.PRG is for your AUTO folder. It should be the physically last 
  100. program there. MiNT users must place it in front of MINT.PRG or MINTNP.PRG.
  101.  
  102. IPRN2.CPX is a Control Panel Extension and must be copied into the folder
  103. where all the others already are. Usually this is C:\CPX\. It is not included
  104. in the demo version.
  105.  
  106.  
  107. Operating
  108. =========
  109. There is nothing to operate on IPRN2.PRG. Your system automatically starts it
  110. from the AUTO folder, and it installs. If the installation fails, there will
  111. be an error message like "already installed" or "Printer port already in use"
  112. if the program already is installed or if another program hogs the printer 
  113. port interrupt.
  114. The Demo version will ask you to type "iPRN II<Return>" on system startup.
  115. If you don't, it simply will not install. (Graphics card owners: Your system
  116. will seem stuck in the boot sequence with the screen still blank; unless
  117. you have some sort of boot screen redirector, you have to do the typing
  118. without visual feedback.)
  119.  
  120. The Control Panel module is for program configuration.
  121. - "Offline Timeout" is the maximum delay (while printing) in seconds before 
  122.   the printer (being in BUSY state) is declared absent and an error condition
  123.   is reported to the application program.
  124. - "End-of-job delay" is the time frame in seconds (after the last byte 
  125.   printed) within which a printer BUSY condition will be considered
  126.   normal, error messages being suppressed meanwhile.
  127. - "Printer state watchdog": Interrupt driven printer state tracking.
  128.   May be enabled or disabled by the user at any time. Disabling it is 
  129.   recommended before using a program that prints in some kind of 
  130.   "Direct to Hardware" mode.
  131. - Clicking "OK" or "Save" will also wake apathetic HP Deskjet printers.
  132.  
  133. The Control panel module is included with the registered versions only;
  134. demo versions have "Offline Timeout" set to 45, "End-of-job delay" set to 2
  135. seconds, and the "Printer state watchdog" disables after the first printer
  136. error.
  137.  
  138.  
  139. iPRN II useful side effects:
  140.  
  141. - The STROBE signal generation is independent from system speed. iPRN II
  142.   works fine on any system, even those faster than the TT.
  143.  
  144. - Screen hardcopies are also accelerated; there also is no absent printer
  145.   delay here.
  146.  
  147. - On system reset, the undefined garbage byte TOS sends to the printer is
  148.   suppressed. Instead, a defined garbage byte (binary zero) is sent.
  149.   It can't be completely supressed, as this is a bug in TOS (up to 1.04,
  150.   at least).
  151.   
  152.  
  153. Unwanted side effects:
  154.  
  155. - Application programs that print by accessing the printer port hardware 
  156.   directly (instead of properly using GEMDOS or BIOS) will cause two 
  157.   interrupts per byte printed. This will slow _these_ printouts down 
  158.   (not much, luckily).
  159.   This applies to some older programs like Calamus 1.x or Signum!2.
  160.   (For the latter, there is a Freshup package available fixing this.)
  161.   Registered iPRN II users can deactivate printer state tracking before
  162.   using these programs.
  163.  
  164. - Many programs do not care about the error conditions the BIOS print function
  165.   returns, so that the printer may not be turned offline while printing.
  166.   iPRN II will supress offline error messages within 2 seconds after the last
  167.   byte printed (this value can be configured in registered versions).
  168.   This provides the user with more time to add paper, replace ink cartridges
  169.   or whatever. Data will not be lost until the "big" timeout occurs, which
  170.   is 45 seconds in the demo version and configurable in registered ones.
  171.   After this time has passed without the printer being back online, 
  172.   bytes will get lost and your printout will feature some additional
  173.   special effects.
  174.   This will also happen with plain TOS and is nothing to do with iPRN II.
  175.  
  176. - Similarly, the GEMDOS functions' return and error codes aren't 
  177.   correctly treated or at all handled by various application programs.
  178.  
  179.  
  180. Contraindications:
  181.  
  182. - Do not use with incompatible printer port hardware like on GEMulator or
  183.   JANUS boards in DOS PCs or Mag!C Mac.
  184.  
  185. ==============================================================================
  186.  
  187. Technical details: iPRN II hooks to the BIOS trap vector (XBRA ID is "iPRN")
  188. and captures Bconout( 0, ... ) and Bcostat( 0 ) calls. Using the same ID, it
  189. also installs in the GEMDOS trap vector and captures calls to Fcreate, Fopen,
  190. Fclose, Fwrite, Fdup and Fforce, as far as printing is concerned. It also
  191. installs in the xconout0, xcostat0, prv_lst, prv_lsto and resvector vectors.
  192. It activates and uses MFP interrupt I0. A cookie "iPRN" is registered, with
  193. its value being a pointer to configuration variables changeable through the 
  194. Control Panel module. (Registered versions only, the demo versions' cookie 
  195. value points to garbage.)
  196.  
  197. Functional improvements over TOS are:
  198. Bcostat( 0 ), as opposed to the original call in TOS, always returns a proper
  199. value, even during a printout, when TOS returns kind of a random value.
  200. iPRN's Bcostat( 0 ) will as usual return -1 for "ready" and 0 for "not ready",
  201. only that a normal BUSY condition will be considered "ready".
  202.  
  203. Fopen, Fcreate and Fdup immetiately return with error code EDRVNR if the
  204. printer is offline.
  205.  
  206. Fwrite returns the actually printed number of bytes. On error situations,
  207. this may well be less than the amount of data passed to the function. 
  208. (The original TOS function will always return the amount passed, no matter
  209. if the data were printed or not.)
  210. An application program thus has to handle three possible situations:
  211. - Fwrite's return value is positive and equal to the amount originally
  212.   passed to it. This happens when everything printed OK.
  213. - The return value is positive, but less than the amount passed to it.
  214.   The application program is to inform the user about the printing problem
  215.   and then (if the user chooses to do so) retry by passing the unprinted
  216.   part of the previous data to Fwrite again.
  217. - The return value is negative. In this case, zero bytes have been printed,
  218.   and the return value is a GEMDOS error code, usually EDRVNR.
  219.   The application program is to inform the user as above, and then retry
  220.   by passing the entire previous data to Fwrite again.
  221.  
  222. ==============================================================================
  223.  
  224. Thanks to:
  225.  
  226. Thomas Fladerer for trying out and daringly using every single version 
  227. since 0.00;
  228.  
  229. The beta testers: Franz Blaha, Thomas Fladerer, Robert Federle, Andreas
  230. Kohout, Heinz Lütkebohmert, Michael Nolte;
  231.  
  232. The non-volunteering testers: Werner Deinböck, Mathias Donat, Michael Ruge,
  233. Walter Vieser.
  234.  
  235. Atari for hardware documentation, some small pieces of code about interrupt
  236. handling and program startup, and the Control Panel Extension development
  237. tools;
  238.  
  239. Julian F. Reschke for maintaining the list of programs using XBRA.
  240.  
  241. Harun Scheutzow for useful assistance in MFP chip wrestling.
  242.  
  243. Special thanks to Thomas Fladerer, Andreas Kohout and Michael Kunert 
  244. for lending me their printers and not chargeing me for the ink used.
  245.  
  246.  
  247. Peter Missel, in May 1996